package com.jic.manager.service;

import com.jic.common.base.vo.Page;
import com.jic.common.base.vo.PageResult;
import com.jic.manager.entity.CmsTemplate;
import com.jic.manager.entity.vo.request.CmsTemplateRequest;
import com.jic.manager.entity.vo.response.CmsTemplateResponse;

import java.util.List;

/**
* 模板
* @author : 
* @email : 
* @since : 2020-03-05 12:01:13
* @version : v1.0.0
*/
public interface CmsTemplateService {

    long insert(CmsTemplate cmsTemplate);

    long delete(Long id);

    long update(CmsTemplate cmsTemplate);

    CmsTemplate queryByPrimaryKey(Long id);

    List<CmsTemplate> query(CmsTemplate cmsTemplate);

    PageResult<CmsTemplate> queryPage(CmsTemplate cmsTemplate, Page pageQuery);

    /**
     * 分页查询
     *
     * @param request
     * @return
     */
    List<CmsTemplateResponse> listCmsTemplateRecordPagination(CmsTemplateRequest request);

    /**
     * 分页查询总记录数接口
     * @param request 分页查询总记录数接口入参
     * @return String
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    long listPageCount(CmsTemplate request) throws Throwable;

    /**
     * 不分页查询
     *
     * @param request
     * @return
     */
    List<CmsTemplate> listCmsTemplateAllRecord(CmsTemplate request);

    /**
     * 修改
     *
     * @param request
     * @return
     */
    long updateCmsTemplate(CmsTemplate request) throws Throwable;

    /**
     * 详情
     *
     * @param request
     * @return CmsTemplate
     *  @auther
     */
    CmsTemplate getCmsTemplate(CmsTemplate request);

    /**
     * 高校保存或修改接口
     * @param request 保存或修改入参
     * @return String
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    long saveOrUpdateCmsTemplate(CmsTemplate request) throws Throwable;

    /**
     * 保存接口
     * @param request 保存入参
     * @return String
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    long addCmsTemplate(CmsTemplate request) throws Throwable;

    /**
     * 删除接口
     * @param request 删除入参
     * @return String
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    long deleteCmsTemplate(CmsTemplate request) throws Throwable;

    /**
     * 删除接口
     * @param request 删除入参
     * @return String
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    long deleteCmsTemplateLogically(CmsTemplate request) throws Throwable;

}